package com.ruoyi.common.web.config;

import com.ruoyi.common.core.utils.SpringUtils;
//import io.undertow.server.DefaultByteBufferPool;
//import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;

import java.util.concurrent.Executors;

/**
 * Undertow 自定义配置
 *
 * @author Lion Li
 */
//@AutoConfiguration
public class UndertowConfig implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {

    /**
     * 设置 Undertow 的 websocket 缓冲池
     */
    @Override
    public void customize(UndertowServletWebServerFactory factory) {
        // 默认不直接分配内存 如果项目中使用了 websocket 建议直接分配
//        factory.addDeploymentInfoCustomizers(deploymentInfo -> {
//            WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
//            webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 512));
//            deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
//            // 启用JAVA21虚拟线程
//            if (SpringUtils.getProperty("spring.threads.virtual.enabled", Boolean.class, false)) {
//                deploymentInfo.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
//            }
//
//        });
    }

}
